package moodle.Agentes;

import java.util.Map;
import moodle.Agentes.actions.AcompanhanteTutor.AlunosParticipantes;
import moodle.Agentes.actions.AcompanhanteTutor.InformarAtividadesEncerrando;
import moodle.Agentes.actions.AcompanhanteTutor.MantemForumAtivo;
import moodle.Agentes.actions.AcompanhanteTutor.MantemTutorAtivo;
import moodle.Agentes.actions.AcompanhanteTutor.TutoresParticipantes;
import moodle.Agentes.actions.AcompanhanteTutor.OrientarAlunoNotaBaixa;
import jamder.Environment;
import jamder.agents.ModelAgent;
import jamder.behavioural.*;
import jamder.roles.AgentRole;
import jamder.structural.Belief;

public class AcompanhanteTutorAgente extends ModelAgent{

	public AcompanhanteTutorAgente(String name, Environment environment,AgentRole agentRole) {
		super(name, environment, agentRole);
		Action tutoresSemParticipacao = new TutoresParticipantes("tutoresParticipantes", null, null);
		addAction("tutoresParticipantes", tutoresSemParticipacao);
		Action alunosParticipantes = new AlunosParticipantes("alunosParticipantes", null, null);
		addAction("alunosParticipantes", alunosParticipantes);
		Action mantemForumAtivo = new MantemForumAtivo("mantemForumAtivo", null, null);
		addAction("mantemForumAtivo", mantemForumAtivo);
		Action mantemTutorAtivo = new MantemTutorAtivo("mantemTutorAtivo", null, null);
		addAction("mantemTutorAtivo", mantemTutorAtivo);
		
		Action informarAtividadesEncerrando = new InformarAtividadesEncerrando("informarAtividadesEncerrando", null, null);
		addAction("informarAtividadesEncerrando", informarAtividadesEncerrando);
		
		addPerceive("informarAtividadesEncerrando", informarAtividadesEncerrando);
;	
		Action orientarAlunoNotaBaixa = new OrientarAlunoNotaBaixa("orientarAlunoNotaBaixa", null, null);
		addAction("orientarAlunoNotaBaixa", orientarAlunoNotaBaixa);

		addPerceive("orientarAlunoNotaBaixa", orientarAlunoNotaBaixa);
	}
	
	
	public void setup() {
		super.setup();
		
		
		
		Map<String, Action> actions = this.getAllActions();
		
		if(!actions.isEmpty()){
		
			for(Map.Entry<String, Action> results : actions.entrySet()){
				addBehaviour(results.getValue());
			}
		}
		
		
		
		addBehaviour(new Sensor(this, 2000));
	}


	@Override
	protected Belief nextFunction(Belief arg0, String arg1) {
		return null;
	}
	
	@Override
	public void percept(String perception) {
		Action action = perceives.get(perception);
		if(action != null){
			addBehaviour(action);
		}
	}
 	
}
